home *** CD-ROM | disk | FTP | other *** search
/ Acorn RISC PD-CD 1 / Acorn RISC PD-CD 1.iso / languages / dde / _pc / h / heap < prev    next >
Text File  |  1992-02-09  |  2KB  |  53 lines

  1. (*
  2.  * Title:   heap.h
  3.  * Purpose: provide malloc-style heap allocation in a flex block
  4.  *
  5.  *)
  6.  
  7. # ifndef __heap_h
  8. # define __heap_h
  9.  
  10. # ifndef __os_h
  11. # include "os.h"
  12. # endif
  13.  
  14.  
  15. (* ---------------------------- heap_init ----------------------------------
  16.  * Description:   Initialises the heap allocation system.
  17.  *
  18.  * Parameters:    BOOL heap_shrink -- if TRUE, the flex block will be shrunk
  19.  *                                    when possible after heap_free()
  20.  * Returns:       void.
  21.  * Other Info:    You must call flex_init before calling this routine.
  22.  *
  23.  *)
  24. procedure heap_init(heap_shrink : boolean); extern;
  25.  
  26.  
  27. (* ---------------------------- heap_alloc ---------------------------------
  28.  * Description:   Allocates a block of storage from the heap.
  29.  *
  30.  * Parameters:    unsigned int size -- size of block to be allocated
  31.  * Returns:       pointer to allocated block (or 0 if failed).
  32.  * Other Info:    This uses the flex module to allocate wimp-supplied heap
  33.  *                space. If the heap moves as the result of an extension
  34.  *                or flex can't extend the heap then 0 is returned.
  35.  *
  36.  *)
  37. function heap_alloc(size : integer) : pointer; extern;
  38.  
  39.  
  40. (* ---------------------------- heap_free ----------------------------------
  41.  * Description:   Free previously allocated block of heap storage.
  42.  *
  43.  * Parameters:    void *heapptr -- pointer to block to be freed
  44.  * Returns:       possible error condition.
  45.  * Other Info:    none.
  46.  *
  47.  *)
  48. procedure heap_free(heapptr : pointer); extern;
  49.  
  50. #endif
  51.  
  52. (* end of heap.h *)
  53.